home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / enigma / earcd / emula / arosdv19.lha / AROS / README.contents < prev    next >
Text File  |  1996-10-01  |  9KB  |  238 lines

  1. WHAT IS THIS
  2. ------------
  3.  
  4. Welcome to the first attempt to explain you how it all works :)
  5.  
  6. If you read this, you have already downloaded the developer files
  7. for AROS and unpacked it. As you can see, everything is put into
  8. a subdirectory named "AROS" so you can easily get rid of all this.
  9.  
  10. THINGS THAT ARE MISSING
  11. -----------------------
  12.  
  13. Yeah, there are some things which are not in this archive for this or
  14. that reason. Here we go:
  15.  
  16. 1) The Amiga system header files are missing for obvious copyright
  17. reasons. You can use the files which come with your C-Compiler
  18. (DICE, SAS/C, StormC++ or Maxxon C++) or the ones from the Amiga
  19. Developer CD 1.1 (that's what I did).
  20.  
  21. The Developer CD is available at
  22.  
  23.     Stefan Ossowskis Schatztruhe
  24.     Gesellschaft für Software mbH
  25.     Veronikastr. 33
  26.     45131 Essen
  27.     Germany
  28.  
  29.     Order Phone: ++49-(0)2 01-78 8778
  30.  
  31.     Fax: ++49-(0)2 01 - 79 84 47
  32.     EMail: stefano@tchest.e.eunet.de
  33.     WWW: http://www.schatztruhe.de/
  34.     Support-Mailbox: ++49-(0)2 08-20 25 09
  35.  
  36. for DM 25.- (about $15) plus P&P. The CD contains all includes you need
  37. and furthermore you can find there valuable information like: The autodocs,
  38. the examples for the various developer disk sets and the Rom Kernel Reference
  39. Manuals (RKRMs), several tools to help to develop code and more. At the
  40. price, it's a bargain.
  41.  
  42. 2) Linux 2.0 for Intel CPUs (1.2.13 might work, but I haven't tried and
  43. won't do it).
  44.  
  45. 3) GNU make 3.74 or better - A real make is neccessary and this is
  46. one (use "make --version" to find out which you have).
  47.  
  48. 4) GCC 2.7.0 or better (2.7.2 is recommended because of the magnitude
  49. of bugs fixed) (use "gcc --verion" to find out which you have).
  50.  
  51. 5) GAS/as 2.7 or better.
  52.  
  53. 6) GDB, the GNU debugger. It is no great help in our project because we do
  54. nasty things with the stack, but better than nothing anyway.
  55.  
  56. 7) GAWK to generate a couple of files (I have 3.0.0, but any version should
  57. work).
  58.  
  59. There are a couple of files and directories below AROS and here is
  60. a short overview of what they are and what you can do with them.
  61.  
  62. THINGS WHICH ARE INCLUDED
  63. -------------------------
  64.  
  65. README* - Numerous READMEs which explain different aspects of AROS
  66.  
  67. arosshell.c - The main code for the shell which allows you to execute AROS
  68.     commands as you are used to it on you beloved Amiga. Also a very
  69.     small demo of how it works and also probably the most small demo
  70.     that does something useful.
  71.  
  72. crypt.c - This is a small program which allows you to create a password if
  73.     you want to use the CVS server (prefered). See README.CVS for how
  74.     it works.
  75.  
  76. tpl.c - Template file for AROS system library functions. Each function
  77.     gets it's own file.
  78.  
  79. makefile - This is the magic file which holds the whole crap together.
  80.     It has the following rules:
  81.  
  82.     "clean" - Delete all generated files.
  83.  
  84.     "all" - This is the default rule: Check (almost) all dependencies
  85.         and generate (almost) all files.
  86.  
  87.     "includes" - Generate/update some AROS include files, mostly
  88.         files in include/clib/.
  89.  
  90.     "dist" - Generate .tar.gz and .lha archives. They are put into
  91.         AROS/dist/. Make sure you have set the version in make.cfg
  92.         beforehand.
  93.  
  94. make.cfg - Global settings for the Makefiles. Each makefile reads this file
  95.     before it does anything else (well, almost... most makefiles set a
  96.     path to this file first :-) ) It sets up some interesting paths:
  97.  
  98.     $(OSGENDIR) - Use this path for all files which should go into
  99.         the OS itself.
  100.  
  101. configure - This is a small script which examines your system and creates a
  102.     file named "host.cfg" which is used by the makefile
  103.  
  104. host.cfg - This is read by the Makefile to get the name of your C compiler,
  105.     options that I should use and more. If this file is missing, make
  106.     will generate it for you.
  107.  
  108. purify - A small script which can be put in front of the C compiler
  109.     like this:
  110.  
  111.         purify cc ...
  112.  
  113.     It will modify some options to purify the code.
  114.  
  115. bin/ - This directory contains all generated files under the name of your
  116.     OS (eg. bin/linux/). This directory is called $(ARCHDIR). Below this
  117.     are two more directories: $(BINDIR) where the files should be put
  118.     which the end user should see and $(GENDIR) where you can create
  119.     a directory to put all files one part of AROS needs (eg. libs/ or
  120.     os/). The diretory $(OSGENDIR) is below $(GENDIR) and all *.o files
  121.     in this directory are collected to the AmigaOS.lib.
  122.  
  123. c/ - This directory contains a couple of applications for AROS and some
  124.     demos.
  125.  
  126. alib/ - contains the source for the amiga.lib
  127.  
  128. amiga/ - This is the directory where you can (and should) put things which
  129.     are copyrighted by someone and thus now part of the archive; right
  130.     now this means only the amiga header files which you get along with
  131.     your C-Compiler (eg. DICE, SAS/C, StormC++, Maxon C++) or from the
  132.     Amiga Developer CD 1.1 (recommended since it's the most simple and
  133.     inexpensive way to get them). The CD is available at your local
  134.     dealer or by mail order. Just put the includes into a subdir
  135.     "include" below "amiga" and AROS will find them there.
  136.  
  137. aros/ - contains code for the aros.lib; this library contains several
  138.     function which make your life easier.
  139.  
  140. devs/ - System devices: console.device
  141.  
  142. dist/ - "make dist" will put an archive with all files for developers
  143.     and users in this directory. Make sure the version in make.cfg
  144.     is set to the correct value because it will be used to determine
  145.     the name of the archive.
  146.  
  147. dos/ - The first library which is added to the OS by standard operations.
  148.     Use this one as a starting point if you want to develop own
  149.     libraries. Here is a list of interesting files:
  150.  
  151.     dos_functable.c - An array which all functions of the library.
  152.         It is generated by a script from the headers of all
  153.         *.c-files in this directory.
  154.  
  155.     dos_init.c - The init-code (lib_init, lib_open, lib_close,
  156.         lib_expunge).
  157.  
  158.     dos_intern.h - A common include-file for all *.c-files in this
  159.         directory. It must not contain anything which is necessary
  160.         outside this directory.
  161.  
  162.     dos_debug.h - Enable and disable debugging for a function of the
  163.         library.
  164.  
  165.     makefile - This is a good example of how a makefile for a library,
  166.         which is linked into the system, should look like
  167.  
  168.     All other files are functions of the library with one function
  169.     per file. Each file contains an AutoDoc-like header and some
  170.     extra infos which are needed by the scripts. If possible each
  171.     file should also contain a test which can be enabled with -DTEST.
  172.     See "filepart.c" for a good example.
  173.  
  174. exec/ - The source for the exec.library. This is no good starting point
  175.     for own libraries since Exec is not initialized like other
  176.     libraries and so some things are handled differently here.
  177.  
  178.     Exec relies on some files which are in $(KERNEL)/.
  179.  
  180. filesys/ - A starting filesystem which uses the Linux ext2fs to emulate
  181.     a DOS device, the basics for a NULL: device and the beginning of
  182.     a RAM Disk.
  183.  
  184. graphics/ - Sourcecode for the graphics.library. See dos/ for more
  185.     information.
  186.  
  187. i386-emul/ - Linux version of the kernel. It consists mainly of a bunch
  188.     of assembler files which implement functions that can't be done
  189.     in C (eg. semaphores, stack handling or task switching). Note that
  190.     this is the only directory which may contain assembler files and
  191.     which is different for every architecture. If you begin your work
  192.     on some new architecture, make such a directory for your hardware
  193.     and put all hardware dependend files in there. It is a rule that
  194.     you can do anything inside this directory as long as it has no
  195.     influence on the other files and diretories. The directory must
  196.     support the standard rules "all" and "clean" and read "make.cfg".
  197.     All files generated by the makefile should go into $(OSGENDIR).
  198.  
  199.     Some files in here might be of interest:
  200.  
  201.     init.c - This file contains the real main() and sets up all
  202.         libraries, devices and all other stuff which must be
  203.         known before the first user process can begin to work.
  204.  
  205.     machine.h - Constants which allow Exec to adjust to the local
  206.         hardware.
  207.  
  208.     makefile - This is a good example of how sub-makefiles for AROS
  209.         should look like.
  210.  
  211. include/ - This directory contains all AROS specific includes as well as all
  212.     Amiga includes which have been modified for AROS. Note that these
  213.     files are searched *before* the files in amiga/include/. Most people
  214.     will notice this when they compile some program which uses a function
  215.     which has not yet been implemented in AROS. The compiler will complain
  216.     about a function without a prototype despite the fact that it is
  217.     in amiga/include/clib/*_protos.h. That's because it doesn't look there
  218.     and if you ever get an error like this, have a look into include
  219.     first.
  220.  
  221. intuition/ - Sourcecode for the intuition.library. See dos/ for more
  222.     information.
  223.  
  224. m68k-emul/ - Untested assembler code for machines which have an 680x0
  225.     CPU but which are not Amigas (Mac, for example).
  226.  
  227. m68k-native/ - Untested assembler code for Amiga hardwares. Untested means:
  228.     They might work but I haven't tried. They should be a good
  229.     basis for beginning the work to make AROS run on an Amiga but
  230.     you should first have a look at i386-emul/ which is the most
  231.     upto-date version.
  232.  
  233. test/ - Testcode which is more complex.
  234.  
  235. utility/ - Sourcecode for the utility.library. See dos/ for more
  236.     information.
  237.  
  238.